package com.beiben.project.domain;

import com.beiben.system.user.domain.BeiBenUser;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 项目人员对象 pm_project_user
 * 
 * @author 熊国强
 * @date 2020-12-03
 */
public class ProjectUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long projectUserId;

    /** 责任人 */
    @Excel(name = "责任人")
    private Long userId;

    /** 项目节点ID */
    private Long projectId;

    /** 审核人 */
    @Excel(name = "审核人")
    private Long checkUserId;


    /** 工作时长 */
    @Excel(name = "工作时长")
    private Integer workTime;

    /** 所属组别 */
    @Excel(name = "所属组别")
    private String userGroup;

    /**
     * 所属组别
     */
    private String[] groups;

    /** 是否超时 */
    @Excel(name = "是否超时")
    private String isTimeOut;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date relFinishTime;
    /**
     * 是否提交见证性材料（Y：是，N：否）
     */
    @Excel(name = "是否提交见证性材料")
    private String isSubmitFile;

    /**
     * 见证性材料名称
     */
    @Excel(name = "是否提交见证性材料")
    private String submitName;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer state;
    /**
     * 工作内容
     */
    @Excel(name = "工作内容")
    private String workContent;

    /*审核人 名称*/
    private String checkUserName;

    /*责任人 名称*/
    private String userName;

    /*项目节点名*/
    private String nodeName;

    /*项目名*/
    private String projectName;

    /*判断审核还是提交 0：提交，1：审核*/
    private String type;

    private BeiBenUser user;

    public BeiBenUser getUser() {
        return user;
    }

    public void setUser(BeiBenUser user) {
        this.user = user;
    }

    public void setProjectUserId(Long projectUserId) 
    {
        this.projectUserId = projectUserId;
    }

    public Long getProjectUserId() 
    {
        return projectUserId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setCheckUserId(Long checkUserId) 
    {
        this.checkUserId = checkUserId;
    }

    public Long getCheckUserId() 
    {
        return checkUserId;
    }
    public void setWorkTime(Integer workTime) 
    {
        this.workTime = workTime;
    }

    public Integer getWorkTime() 
    {
        return workTime;
    }
    public void setUserGroup(String userGroup) 
    {
        this.userGroup = userGroup;
    }

    public String getUserGroup() 
    {
        return userGroup;
    }
    public void setIsTimeOut(String isTimeOut) 
    {
        this.isTimeOut = isTimeOut;
    }

    public String getIsTimeOut() 
    {
        return isTimeOut;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }
    public void setRelFinishTime(Date relFinishTime) 
    {
        this.relFinishTime = relFinishTime;
    }

    public Date getRelFinishTime() 
    {
        return relFinishTime;
    }

    public String[] getGroups() {
        return groups;
    }

    public void setGroups(String[] groups) {
        this.groups = groups;
    }

    public String getCheckUserName() {
        return checkUserName;
    }

    public void setCheckUserName(String checkUserName) {
        this.checkUserName = checkUserName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getIsSubmitFile() {
        return isSubmitFile;
    }

    public void setIsSubmitFile(String isSubmitFile) {
        this.isSubmitFile = isSubmitFile;
    }

    public String getSubmitName() {
        return submitName;
    }

    public void setSubmitName(String submitName) {
        this.submitName = submitName;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getWorkContent() {
        return workContent;
    }

    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }

    public String getNodeName() {
        return nodeName;
    }

    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projectUserId", getProjectUserId())
            .append("userId", getUserId())
            .append("checkUserId", getCheckUserId())
            .append("workTime", getWorkTime())
            .append("userGroup", getUserGroup())
            .append("isTimeOut", getIsTimeOut())
            .append("startTime", getStartTime())
            .append("finishTime", getFinishTime())
            .append("relFinishTime", getRelFinishTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
